package com.ruoyi.datastatistics.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.datastatistics.domain.PublicShareComsumeReport;
import com.ruoyi.datastatistics.domain.PublicShareReport;

/**
 * 公摊报Service接口
 *
 * @author gdqt
 * @date 2025-05-13
 */
public interface IPublicShareComsumeReportService extends IService<PublicShareComsumeReport>
{
    /**
     * 查询公摊报
     *
     * @param id 公摊报主键
     * @return 公摊报
     */
    public PublicShareComsumeReport selectPublicShareComsumeReportById(Long id);

    /**
     * 查询公摊报列表
     *
     * @param publicShareComsumeReport 公摊报
     * @return 公摊报集合
     */
    public List<PublicShareComsumeReport> selectPublicShareComsumeReportList(PublicShareComsumeReport publicShareComsumeReport);

    /**
     * 新增公摊报
     *
     * @param PublicShareComsumeReport 公摊报
     * @return 结果
     */
    public int insertPublicShareComsumeReport(PublicShareComsumeReport PublicShareComsumeReport);

    public int insertPublicShareComsumeReportForElectricityTerminals(String frequencyType,String freezeTime, String userId);

    public int insertPublicShareComsumeReportForWaterTerminals(String frequencyType,String freezeTime, String userId);

    /**
     * 修改公摊报
     *
     * @param PublicShareComsumeReport 公摊报
     * @return 结果
     */
    public int updatePublicShareComsumeReport(PublicShareComsumeReport PublicShareComsumeReport);

    /**
     * 批量删除公摊报
     *
     * @param ids 需要删除的公摊报主键集合
     * @return 结果
     */
    public int deletePublicShareComsumeReportByIds(Long[] ids);

    /**
     * 删除公摊报信息
     *
     * @param id 公摊报主键
     * @return 结果
     */
    public int deletePublicShareComsumeReportById(Long id);

    List<PublicShareComsumeReport> selectTotalReportList(PublicShareComsumeReport publicShareComsumeReport);

    List<PublicShareComsumeReport> selectReportDetailList(PublicShareComsumeReport publicShareComsumeReport);
    List<PublicShareComsumeReport> selectComsumeDetailList(PublicShareComsumeReport publicShareComsumeReport);
    Map selectComsumeDetailListSum(PublicShareComsumeReport publicShareComsumeReport);

    List<PublicShareComsumeReport> publicShareListForBill(PublicShareComsumeReport publicShareComsumeReport);
}
